//package customermanagesystem.demo.aopBean;
//
//import customermanagesystem.demo.aopDao.Com;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.cglib.proxy.Enhancer;
//import org.springframework.stereotype.Component;
//import org.springframework.cglib.proxy.InvocationHandler;
//
//import java.lang.reflect.Method;
//
////AOP 面向切面编程，通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
//@Component
//public class ProxyWithCglib implements InvocationHandler {
//
//    @Autowired
//    private Com com;
//    @Autowired
//    private MyComAspect aspect;
//
//
//    // 代理要处理的事情
//    @Override
//    public Object invoke(Object o, Method method, Object[] objects) throws Throwable {
////        aspect.before(method.getName(), objects);
//        // 触发自己的核心方法
//        Object result = method.invoke(com, objects);
//        aspect.after(method.getName(), (int)result);
//        return result;
//    }
//
//    public Object creatProxy(){
//        Enhancer enhancer = new Enhancer();
//        enhancer.setSuperclass(com.getClass());
//        enhancer.setCallback(this);
//        return enhancer.create();
//    }
//}
